#include<bits/stdc++.h> #define rep(i, x, y) for (int i = x; i <= y; i++) usingnamespacestd;
constint N = 1e4 + 10; int n, m, a[N], x, b[N], f[N], tot;
intquery(int x){ int l = 1, r = tot, ret = 0; while (l <= r) { int mid = (l + r) >> 1; if (b[mid] > x) ret = max(ret, mid), l = mid + 1; else r = mid - 1; } return ret; }
intmain(){ cin >> n; rep(i, 1, n) cin >> a[i]; for (int i = n; i >= 1; i--) { int tmp = query(a[i]); f[i] = tmp + 1; tot = max(tot, tmp + 1); if (b[tmp + 1] < a[i]) b[tmp + 1] = a[i]; }
cin >> m; while (m--) { cin >> x; if (x > tot) puts("Impossible"); else { int lst = 0; rep(i, 1, n) { if (a[i] > lst && f[i] >= x) { printf("%d ", a[i]); x--; lst = a[i]; if (!x) break; } } puts(""); } } return0; }